/*
 * author Chrystian
 * since 11/05/2013
 * Classe de implementação genérica para todas as entidades do sistema.
 */

package br.com.guinchomarinho.entityManager;
import javax.persistence.EntityManager;
import javax.swing.JOptionPane;



import br.com.guinchomarinho.utils.HibernateJpaUtil;

public class GenericEntityManager {
	
	private static EntityManager sessao; 
	
	
	public GenericEntityManager(){
		
		sessao = HibernateJpaUtil.get().createEntityManager();
		sessao.getTransaction().begin();
		
	}
	
	public void insert(Object obj){
		
		try{
				
			sessao.persist(obj);
			sessao.getTransaction().commit();
			sessao.close();			
		
		}catch (Exception e) {

			JOptionPane.showMessageDialog(null, "Erro ao Inserir REGISTRO " + e);
		}
	}
	
	public void alter(Object obj){
		
		try{
			
			sessao.merge(obj);
			sessao.getTransaction().commit();
			sessao.close();		

		}catch (Exception e) {

			JOptionPane.showMessageDialog(null, "Erro ao Inserir REGISTRO " + e);
	}
	}
	
	public void delete(Object obj){
		
		try{
				
			sessao.remove(sessao.merge(obj));
			sessao.getTransaction().commit();
			sessao.close();	

		}catch (Exception e) {

			JOptionPane.showMessageDialog(null, "Erro ao Inserir REGISTRO " + e);
		}
	}	

	

}
